Option Strict On
Option Explicit On 

Imports System.Windows.Forms

''' -----------------------------------------------------------------------------
''' Project	 : IPCommon
''' Class	 : Core.IPCommon.IPStatusBarMessages
''' 
''' -----------------------------------------------------------------------------
''' <summary>
''' Sử dụng để hiện thị các message ra status bar.
''' Chủ yếu dùng cho các common message
''' </summary>
''' <example>Sử dụng
''' <code>
''' Private m_message_handler as IPStatusBarMessages = New IPStatusBarMessages(Me.m_status_bar)
''' ...
''' m_message_handler.display_message(EnumCommonMessage.DATA_CANNOT_BE_DELETED)
''' </code>
''' Message để hiện thì có thể là common message nhưng cũng có thể là customized message đặc trưng cho chức năng.
''' </example>
''' <remarks>
''' </remarks>
''' <history>
''' 	[csung]	2/22/2005	Created
''' </history>
''' -----------------------------------------------------------------------------
Public Class IPStatusBarMessages
    Private m_stb As StatusBar

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Khởi tạo 1 message handler object. Đối tượng này dùng để hiện thị message ra status bar.
    ''' </summary>
    ''' <param name="i_stb">Đây là statusbar sẽ hiện thị message. Chính là statusbar của form.</param>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	2/22/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Sub New(ByVal i_stb As StatusBar)
        m_stb = i_stb
    End Sub
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Hiện thị một common message
    ''' </summary>
    ''' <param name="i_msg_index">index của message cần hiện thị</param>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	2/22/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Sub display_message(ByVal i_msg_index As EnumCommonMessage)
        m_stb.Panels(0).Text = "SCM-" & CType(i_msg_index, Integer).ToString() & ": " & get_message(i_msg_index)
    End Sub
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Hiện thị một message đặc trưng cho chức năng ra status bar.
    ''' </summary>
    ''' <param name="i_str_msg">Message cần hiện thị. Thông thường bạn có thể lấy nó từ BaseMessages</param>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	2/22/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Sub display_message(ByVal i_str_msg As String)
        m_stb.Panels(0).Text = i_str_msg
    End Sub

#Region "Private"
    Private Function get_message(ByVal i_msg_index As EnumCommonMessage) As String
        Dim v_str As String = "Message chưa định nghĩa"
        Select Case i_msg_index
            Case EnumCommonMessage.FILED_MUST_BE_FILLED_IN
                v_str = "Trường dữ liệu cần phải điền"
            Case EnumCommonMessage.DATA_CANNOT_BE_DELETED
                v_str = "Dữ liệu không xoá được vì đã được sử dụng"
            Case EnumCommonMessage.DATA_SUBMITTED
                v_str = "Dữ liệu đã được cập nhật thành công"
            Case EnumCommonMessage.DATE_DATA_MUST_BE_IN_CORRECT_FORMAT
                v_str = "Dữ liệu ngày tháng phải được điền dưới dạng dd-mm-yyyy"
            Case EnumCommonMessage.NUMERIC_DATA_MUST_BE_IN_CORRECT_FORMAT
                v_str = " Phải điền dữ liệu số"
        End Select
        Return v_str
    End Function

#End Region
End Class

Public Enum EnumCommonMessage
    FILED_MUST_BE_FILLED_IN = 0
    DATA_CANNOT_BE_DELETED = 1
    DATA_SUBMITTED = 2
    DATE_DATA_MUST_BE_IN_CORRECT_FORMAT = 3
    NUMERIC_DATA_MUST_BE_IN_CORRECT_FORMAT = 4
End Enum